<?php namespace Common\Model;
use Hdphp\Model\Model;
class Goods extends Model{
	
	protected $table="goods";
	
	protected $validate=array(
		array('gname','required','商品名称不能为空',3,3),
	);
	protected $auto =array(
		array('listtu','listtu','method',3,3),
		array('gtime','time','function',3,1),
	);
	
	public function store(){
//		p(Q('post.'));die;
		if($this->create()){
			$gsmodel=new \Common\Model\goodssx;
			
			$gxmodel=new \Common\Model\goodsxx;
			
			$gid=$this->add();
//			商品详情
			
//			$gxmodel->create();
			
			$gxmodel->data['goods_gid']=$gid;
			$gxmodel->data['aoodsxx']=Q('post.aoodsxx');
			$gxmodel->data['sale']=Q('post.sale');
//			p($gxmodel->data);exit;
//			p(Q('post.'));exit;	 	
			
//			p($gxmodel->data);exit;	

			
			$gxmodel->add();
////			商品属性(attr)
			$attr=Q('post.attr',array());
			
			$nid=Q('post.nature_nid');
			foreach ($attr as $k=>$v) {
				$shuxing=array(
				    'sxzhi'=>$v,
					'goods_gid'=>$gid,
					'nature_nid'=>$k,
				);
				$gsmodel->add($shuxing);
			}
//			循环规格(spec)
			$spec=Q('post.spec',array());
			
			foreach ($spec as $k=>$v) {
				foreach($v['value'] as $kk=>$vv) {
					$guige=array(
					'sxzhi'=>$vv,
					'addition'=>$v['addition'][$kk],
					'goods_gid'=>$gid,
					'nature_nid'=>$k,
					);
					$gsmodel->add($guige);
				}
			}
			return true;
		}else{
			return false;
		}
		
		
		
	}
	
	
	public function listtu(){
		//如果有文件上传
		
		//如果是编辑的时候，只显示图片的时候，没有file类型的表单，所以是不存在$_FILES['thumb']
		if(isset($_FILES['listtu']) && $_FILES['listtu']['error'] != 4){
			//执行上传类
			$files = Upload::type('jpg,png,gif')->size(2000000)->make();
			//如果上传成功，返回对应的路径
//			p($files);exit;
			if($files){
//				p($files);exit;
				//处理缩略的文件名
//				p($files);exit;
				$newPath = str_replace('.' . $files[0]['ext'], '_listtu.' . $files[0]['ext'], $files[0]['path']);
				//缩略，返回缩略图的地址
				$listtuPath = Image::thumb($files[0]['path'],$newPath,200,200,2);
				//存到数据库
				return $listtuPath;
			}
		}
		//编辑的时候：如果有隐藏域（$_POST['thumb']）的时候，那么就是返回旧地址
//		if($thumb = Q('post.blogo')){
//			return $thumb;
//		}c
		//如果用户没有上传，则返回空字符串存入数据
//		return '';
	}
	
	//uploadify异步上传
	public function upload()
	{
	    $file = Upload::path('Upload/Content/' . date('y/m'))->make();
	    if (empty($file)) {
	        $this->ajax(Upload::getError());
	    } else {
	        /** $file内部就是以下这个数组
	            $file = array(
	                0 => array(
		                'path' => 'Upload/Content/15/8/123981239172.jpg'    ,
		                'url' => 'http://localhost/cms_edu/Upload/Content/15/8/123981239172.jpg',
		                'image' => 1
	            ),
	        );**/
	        //上传成功，把上传好的信息返给js
	        $data = $file[0];
	        echo json_encode($data);exit;
	    }
	}
	
		//编辑方法
	public function edit(){
		$gid = Q('post.gid',0,'intval');
	  	if(!$this->create()) return false;
		//2.验证商品详情表里的商品详情和商品服务是否通过
		//实例化商品详情表
		$detailModel = new \Common\Model\Goodsxx;
		if(!$detailModel->create()){
			//若验证不通过，把当前错误压入当前模型
			$this->error = $detailModel->getError();
			return false;
		}		
		//3.验证商品属性表里的商品属性值是否通过验证
		//实例化商品属性表
		$attrModel = new \Common\Model\Goodssx;
		//若验证不通过，把当前错误压入当前模型
		if(!$attrModel->create()){
			$this->error = $attrModel->getError();
//			return false;
		}
		//1.给商品表添加数据，如果以上验证全部通过,返回商品自增主键（真值）
		//根据提交过来的class_cid找到class表里的type_typid就找到了type表里的同一批的typid;
		$cid = Q('post.class_cid',0,'intval');
		
		//找到category表里的type_typid
		$typid = Db::table('class')->where("cid={$cid}")->pluck('type_tid');
		//压入数组
		$this->data['type_tid'] = $typid;
		//添加到数据库，返回自增主键
		$this->save(); 

		//2.给商品详情表添加数据		
	
		//将多图的数组路径转化为字符串压入相应的商品详情数据的数组里然后执行添加
		$detailModel->data['picture'] = implode(',', Q('post.picture',array()));
		$detailModel->data['goods_gid'] = $gid;	
		//给详情表里加入数据
		$detailModel->where("goods_gid={$gid}")->save();		
		//3.给商品属性表里添加数据
		p($gid);
		//将提交过来的数组中的规格数组接收到循环遍历将相应的值压入
		$attrModel->where("goods_gid={$gid}")->delete();
		//是规格的时候
		
		foreach (Q('post.spec',array()) as $k => $v){
			foreach ($v['value'] as $kk => $vv) {
				if(!empty($vv)){
						$add = array(
						'sxzhi'      => $vv,
						'addition'     => $v['price'][$kk],
						'nature_nid' => $k,
						'goods_gid'    => $gid,
					);
				}
				$attrModel->add($add);				
			}
		}	

		//是时属性的时候
		foreach (Q('post.attr',array()) as $key => $value) {
				if(!empty($value)){
						$ad = array(
						'sxzhi'      => $value,
						'addition'     => 0,
						'nature_nid' => $key,
						'goods_gid'    => $gid,
					);
				}
				$attrModel->add($ad);	
		}
		return true;
	   
	}
	
	
	
	
	
	
	
	
	
	
	
}	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
?>